package com.learning.spring.cloud.ms.gateway.zuul;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

/**
 * ClassName: MsGatewayZuulApplication
 * Description:
 * Date: 2019/5/31 10:42 【需求编号】
 * 1- 访问流程：
 * 没有网关前：外部客户端 -> 各种服务           http://localhost:8010/movie/user/1                     http://localhost:8000/user/1
 * 有网关后： 外部客户端 -> 服务网关 -> 各种服务 http://localhost:8040/ms-consumer-movie/movie/user/1   http://localhost:8040/ms-provider-user/user/1
 * <p>
 * <p>
 * 2- 默认情况下，Zuul会代理所有注册上 Eureka Server 的微服务，且路由规则如下：
 * http://ZUUL_HOST:ZUUL_PORT/微服务在Eureka上的 serviceId/** 会被转发到serviceId对应的微服务
 * <p>
 * 3- 已经集成负载均衡：
 * - 启动多个 ms-provider-user
 * - 多个访问 http://localhost:8040/ms-provider-user/user/1
 * <p>
 * 4- Hystrix 容错与监控：ms-hystrix-dashboard 项目
 * <p>
 * 5-管理端点
 * routes：http://localhost:8040/routes、http://localhost:8040/routes?format=details
 * filters：http://localhost:8040/filters 四种类型的过滤器 error、post、pre、route
 *
 * @author Sam Sho
 * @version V1.0.0
 */
@EnableZuulProxy
@SpringBootApplication
public class MsGatewayZuulApplication {

    public static void main(String[] args) {
        SpringApplication.run(MsGatewayZuulApplication.class, args);
    }

}
